The present invention is directed to global resource management of distributed data processing systems.
Continuous multimedia applications are being developed for entertainment (e.g., video-on-demand services), for office automation (e.g., video conferencing), for crisis management, for command and control, and the like. In these continuous multimedia applications, video, audio, and/or image streams are processed within a node and between nodes of a data processing system.
Some continuous multimedia applications are mission critical and some are not. For example, the continuous multimedia applications being developed for entertainment (e.g., video-on-demand services), for office automation (e.g., video conferencing), and the like, are not particularly mission-critical. By contrast, the continuous multi-media applications being developed for crisis management, for command and control, and the like, are often mission critical. Mission-critical continuous multimedia applications are becoming increasingly important.
Mission-critical continuous multimedia applications have at least three unique characteristicsxe2x80x94they are criticality driven, they are dynamic, and they operate in real time. With respect to the first of these unique characteristics, media streams in mission-critical continuous multimedia applications may be associated with an attribute of criticality. Criticality is an indication of the importance of a particular application being executed at a given time, and is assigned to the application by a system administrator (or mediator) who reviews all applications to determine the criticality differences between them. For instance, an application which is performing periodic image-capturing and flaw detection in a process control can be more important than an application that monitors floor activities in a controlled plant. Consequently, the periodic image-capturing and flaw detection stream is assigned a higher criticality level by the system administrator than is the video stream relating to the monitored floor activities. In order to support different criticality levels, the data processing system which processes such media streams must be criticality cognitive and must be able to support plural critical multimedia data streams in the presence of multiple service requests.
With respect to the second of these unique characteristics, mission-critical continuous multimedia applications are often dynamic and may vary greatly in their demands on the local resources of the data processing system. In digital battlefield management, for example, detection of a mobile target may trigger a sequence of reactions, such as video monitoring, infrared tracking, image library retrieval for target matching and recognition, media data fusion and filtering, and command and control. Such dynamic demands on the local resources of the data processing system are not predictable a priori, and, therefore, require applications to negotiate on line for, and adapt to, the available local resources, which may include disk i/o bandwidth, CPU cycles, memory space, video compression/decompression capacity, network bandwidth, and the like. Without sufficient resources and proper resource management, multimedia streams may lose their data or timeliness in a random fashion, causing application malfunction.
With respect to the third of these unique characteristics, mission-critical continuous multimedia applications must operate according to a guaranteed latency and data flow rate. Latency is the end-to-end delay from the time when the very first media unit is produced at a stream source to the time it reaches a stream destination. Rate is the number of media data units per second that are processed by a processing node.
Moreover, when execution of an application requires resources of more than one node of a distributed data processing system, the execution of the application by those nodes must be coordinated. Otherwise, execution of the application may fail because one of the nodes, which is to participate in the execution of the application but which does not-have the resources allocated for the application, may undermine the execution devoted by the other nodes. This problem becomes increasingly severe as the number of applications to be concurrently executed across the distributed data processing system increases.
The present invention is directed to a global resource management arrangement that coordinates demands on resources of a distributed data processing system in a deterministic, adaptive manner (according to, for example, an application""s QoS, timing, and criticality requirements).
According to one aspect of the present invention, in a resource manager for each node of a plurality of nodes of a distributed data processing system comprises determining means, request sending means, response sending means, and commit sending means. Each node may receive an arriving session to process. The determining means determines whether a node corresponding to the determining means can support the arriving session. The request sending means sends, if the corresponding node is a coordinator node or an intermediate node, a support request to child nodes which are to process the arriving session. The response sending means sends, if the corresponding node is an intermediate node or a leaf node, a response to a parent node. The response indicates whether the arriving session can be supported. The commit sending means sends, if the corresponding node is a coordinator node and if the arriving session can be supported by the nodes which are to process the arriving session, a commit message to the child nodes which are to process the arriving session.
According to another aspect of the present invention, a resource manager for each node of a plurality of nodes of a distributed data processing system comprises determining means, request sending means. intermediate response sending means, leaf response sending means, and commit sending means. Each node may receive an arriving session to process. The determining means determines whether a node corresponding to the determining means can support the arriving session. The request sending means sends, if the corresponding node is a coordinator node or an intermediate node and if the corresponding node can support the arriving session, a support request to child nodes which are to process the arriving session. The intermediate response sending means sends, if the corresponding node is an intermediate node, a YES response to a parent node if the corresponding node and its child nodes can support the arriving session and a NO response to the parent node if the corresponding node or at least one of its child nodes cannot support the arriving session. The leaf response sending means sends, if the corresponding node is a leaf node, a YES response to a parent node if the corresponding node can support the arriving session and a NO response to the parent node if the corresponding node cannot support the arriving session. The commit sending means sends, if the corresponding node is a coordinator node and if the arriving session can be supported by the nodes which are to process the arriving session, a commit message to the child nodes which are to process the arriving session.
According to yet another aspect of the present invention, a resource manager for a coordinator node of a distributed data processing system comprises determining means, request sending means, and commit sending means. The coordinator node may receive an arriving session to process. The determining means determines whether the coordinator node can support the arriving session. The request sending means sends, if the determining means determines that the coordinator node can support the arriving session, a support request to child nodes which are to process the arriving session. The commit sending means sends, if the coordinator node and all of the child nodes can support the arriving session, a commit message to the child nodes. The commit message includes a globally supportable QoS for the arriving session.
According to still another aspect of the present invention, a resource manager for an intermediate node of a distributed data processing system comprises determining means, request passing means, and response sending means. The intermediate node may be requested to process an arriving session. The determining means determines whether the intermediate node can support the arriving session. The request passing means passes, if the intermediate node can support the arriving session, a request from an upstream node to downstream nodes which are to process the arriving session. The request requests the downstream nodes to determine supportability of the arriving session. The response sending means sends a response to the request from the upstream node. The response sending means sends the response to the upstream node, the response is a YES response if the intermediate node and the downstream nodes can support the arriving session, and the response is a NO response if the intermediate node or one of the downstream nodes cannot support the arriving session.
According to a further aspect of the present invention, a resource manager for a leaf node of a distributed data processing system comprises determining means and response sending means. The leaf node may be requested to process an arriving session. The determining means determines whether the leaf node can support the arriving session. The response sending means sends a response to a request from an upstream node. The request asks whether the leaf node can support the arriving session, the response sending means sends the response to the upstream node, the response is a YES response if the leaf node can support the arriving session, and the response is a NO response if the leaf node cannot support the arriving session.
According to a yet further aspect of the present invention, a method is performed by a processing node of a distributed data processing system. The processing node may receive an arriving session and processes an other session. The method comprises the following steps: a) determining whether the arriving session can be supported; b) if the processing node is a coordinator node or an intermediate node, sending a request to downstream nodes, wherein the request asks whether the downstream nodes can support the arriving session; c) if the processing node is an intermediate node, sending a response to an upstream node in response to the request, wherein the response is a YES response if the processing node and the downstream nodes can support the arriving session, and wherein the response is a NO response if the processing node or one of the downstream nodes cannot support the arriving session; d) if the processing node is a leaf node, sending a response to an upstream node in response to the request, wherein the response is a YES response if the processing node can support the arriving session, and wherein the response is a NO response if the processing node cannot support the arriving session; e) if the processing node is a coordinator node and if the processing node and all of the downstream nodes can support the arriving session, sending a commit message to the downstream nodes which are to process the arriving session; and f) if the processing node is a coordinator node and if the processing node or one of the downstream nodes cannot support the arriving session, sending an abort message to the downstream nodes.
According to a still further aspect of the present invention, a global resource manager communicates locally with a local resource manager that locally manages a session. The global resource manager also communicates globally in order to globally manage the session. The global resource manager globally manages the session according to a criticality level, a timing requirement, and a QoS of the session.
According to another aspect of the present invention, a method, implemented provided to a user, globally manages a session. The session has a criticality level, a timing requirement, and a QoS associated therewith. The method comprising the following steps: a) enabling the user to make an initial adjustment of at least one of the criticality level, the timing requirement, and the QoS for the session; and b) enabling the user to make a subsequent adjustment of at least one of the criticality level, the timing requirement, and the QoS for the session, wherein the subsequent adjustment is made after partial execution of the session.
According to yet another aspect of the present invention, a method to globally manage a session in first and second phases comprises the following steps: a) negotiating among first and second nodes for a QoS of the session during the first phase by ripple scheduling the session; b) if the first and second nodes can execute the session, sending a commit message during the second phase from the first node to the second node; and c) if the first and second node cannot execute the session, sending an abort message during the second phase from the first node to the second node.
According to still another aspect of the present invention, a processing node of a distributed data processing system comprises a local resource manager and a global resource manager. The local resource manager is arranged to manage a local resource in response to a test-and-hold instruction. The global resource manager is arranged to conduct a peer-to-peer global QoS negotiation and adaptation with other global resource managers of the distributed data processing system a test-and-hold instruction, the global resource manager is arranged to initiate a test-and-hold instruction to the local resource manager, the global resource manager is arranged to receive a response from the local resource manager indicating whether its corresponding local resource can support a session, and the global resource manager is arranged to interface with different types of local resource managers.
According to a further aspect of the present invention, a processing node of a distributed data processing system comprises a local resource manager, an operating system, and a global resource manager. The local resource manager is arranged to manage a local resource in response to a test-and-hold instruction. The operating system is arranged to operate the local resource. The global resource manager is arranged to conduct a peer-to-peer global negotiation with other global resource managers of the distributed data processing system through a test-and-hold instruction, the global resource manager is arranged to initiate a test-and-hold instruction to the local resource managers the global resource manager is arranged to receive a response from the local resource manager indicating whether its corresponding local resource can support a session, and the global resource manager sits on top of the operating system.